#ifndef MULTINET_TEST_H_
#define MULTINET_TEST_H_
/*********************************************************/
#include "UnitTest.h"
/*********************************************************/
class MultiNetTest : public UnitTest
{
private:
	bool cleanStartStopTest();		// Can the class start & stop cleanly?
	bool joinGroupTest();			// Creates & joins a multicast test
	bool joinDoubleGroupTest();		// Joins the same multicasting group on the same interface with 2 seperate sockets
	bool sendDataTest();			// Creates a sockets and tests data transmission
	bool groupIPReturn();			// Tests if the multicast class returns the correct configuration parameters
	bool doubleStartTest();			// Does the class keep it together when it gets started twice?
	bool doubleStopTest();			// After a start ... 2 consecutive stops?
	bool idleStopTest();			// If the class isn't running does is survive a stop?
	bool eventResponseTest();		// Does the class correctly flag the reception event?

protected:
public:
	virtual std::string name();		// Returns the name for this unit
	virtual bool runUnitTests();		// Run all tests from this unit
};
/*********************************************************/
#endif //MULTINET_TEST_H_